﻿namespace XNAGameEngine.Collision
{
    /// <summary>
    /// Interface for the ManagerCollision object
    /// </summary>
    public interface IManagerCollision
    {
        #region interface methods

        /// <summary>
        /// This method is used to add a game object to the Collision Manager.  The identifying number
        /// is necessary as well as specifying the correct type of object.  The id is used to find the
        /// object to be tested on and the type is whether or not it needs to be checked for collisions
        /// due to its movement.
        /// </summary>
        /// <param name="intCollidableID">The id of the object to be added</param>
        /// <param name="blStatic">True if it is a static object and false if it is a dynamic object</param>
        /// <returns>true is returned if the object's id is added to the collision manager; 
        /// false otherwise</returns>
        bool RegisterCollidable(int intCollidableId, bool blStatic);

        /// <summary>
        /// This method is used to remove a game object from the Collision Manager.  This should be used
        /// for when an object no longer needs to have collisions checked on it.
        /// </summary>
        /// <param name="intCollidableID">The id of the object to be removed</param>
        /// <returns>true is returned if the object's id is removed from the collision manager; 
        /// false otherwise</returns>
        bool UnRegisterCollidable(int intCollidableId);

        #endregion

    }
}
